package com.crmsys.common.util;


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;


/**
 *功能描述：常用工具方法的集合
 *@version 1.0
 */

public class UtilTools {
	private static Logger log = Logger.getLogger("UtilTools");
	/**
     * 加密操作
     * @param data
     * @return
     */
    public static String encrypt(String data){
    	return PwdCrypt.getInstance().encrypt(data);
    }
    
    /**
     * 解密操作
     * @param data
     * @return
     * @throws IOException
     */
    public static String decrypt(String data){
    	return PwdCrypt.getInstance().decrypt(data);
    }
    /**
     * 
     *功能描述：检查是否为null
     *@version 1.0
     *@param	str		被检查对象
     *@return	boolean null?true:false
     */
    public static boolean isNull(Object obj){
    	if(obj == null)return true;
    	return false;
    }
    /**
     * 
     *功能描述：检查字符串是否为空
     *@version 1.0
     *@param	str		被检查字符串
     *@return	boolean ""?true:false
     */
    public static boolean isEmpty(String str){
    	if("".equals(str.trim()))return true;
    	return false;
    }
    /**
     * 
     *功能描述：检查字符串是否为空或null
     *@version 1.0
     *@param	str		被检查字符串
     *@return
     */
    public static boolean isNullOrEmpty(String str){
    	if(isNull(str) || isEmpty(str))return true;
    	return false;
    }
    /**
     * 功能说明：string字符串转换
     * @param str
     * @param code
     * @return
     * @throws 
     */
    public static String StringEncode(String str,String code){
    	if(isNullOrEmpty(str))return null;
    	if(isNullOrEmpty(code))return null;
    	try {
			return new String(str.getBytes(),code);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
    }
    
	
	/**
	 * 功能说明：将日期格式为年月日
	 * @param
	 * @param
	 * @param date
	 * @return
	 * @throws 
	 */
	public static String formatDateToYMD(Date date){
		if(date == null)return null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(date);
	}
	/**
	 * 功能说明：将日期格式为年月日时分秒
	 * @param
	 * @param
	 * @param date
	 * @return
	 * @throws 
	 */
	public static String formatDateToYMDHMS(Date date){
		if(date == null)return null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}
	
	
	/**
	 * 功能说明：随机生成字符，含大写、小写、数字
	 * @return
	 */
    public static String getRandomChar() {   
        int index = (int) Math.round(Math.random() * 2);  
        String randChar = "";   
        switch (index) {   
        case 0://大写字符   
            randChar = String.valueOf((char)Math.round(Math.random() * 25 + 65));   
            break;   
        case 1://小写字符   
            randChar = String.valueOf((char)Math.round(Math.random() * 25 + 97));   
            break;   
        default://数字   
            randChar = String.valueOf(Math.round(Math.random() * 9));   
            break;   
        }   
        return randChar;   
    }   
    

	/**
	 * 功能说明：获得一句话的首字母
	 * @param words
	 * @return
	 */
	public static String getFirstLetters(String words){
		return FirstLetter.getFirstLetters(words);
	}
}
